package com.yunxin.core.domain.service.merchant;

import com.yunxin.core.domain.model.merchant.MerchantContactPerson;
import com.yunxin.core.domain.model.merchant.MerchantInfo;
import com.yunxin.core.domain.model.merchant.MerchantInvoiceInfo;

/**
 * @author zero°
 * @since 2023-05-27
 */
public interface MerchantService {

    /**
     * 新增商户数据
     * @param merchantInfo merchantInfo
     * @param merchantContactPerson merchantContactPerson
     * @param merchantInvoiceInfo merchantInvoiceInfo
     * @return  boolean
     */
    boolean addMerchantData(MerchantInfo merchantInfo, MerchantContactPerson merchantContactPerson,
                            MerchantInvoiceInfo merchantInvoiceInfo);

    /**
     * 新增商户数据
     * @param merchantInfo merchantInfo
     * @param merchantContactPerson merchantContactPerson
     * @param merchantInvoiceInfo merchantInvoiceInfo
     * @return  boolean
     */
    boolean updateMerchantData(MerchantInfo merchantInfo, MerchantContactPerson merchantContactPerson,
                               MerchantInvoiceInfo merchantInvoiceInfo);

    /**
     * 更新商户状态
     * @param oldMerchantInfo oldMerchantInfo
     * @param merchantStatus merchantStatus
     * @param editor editor
     * @return  boolean
     */
    boolean updateMerchantStatus(MerchantInfo oldMerchantInfo, Integer merchantStatus, String editor);


    MerchantInfo selectByMerchantId(Long id);
}
